#ifndef GAME_INIT_H
#define GAME_INIT_H

#include "GameCommand.h"
#include <string>

struct Game_Init : public GameCommand
{
	static string command;
	unsigned long seed;
	
	Game_Init() : GameCommand() { }
	Game_Init(unsigned long Seed);
	
	virtual ~Game_Init() {}
	
	virtual void onExecute();
	virtual string toString();
	virtual SerializedGameCommand serialize() const;
	
	static Game_Init* interpret(const SerializedGameCommand&);
	static Game_Init* interpret(const char* line);
	
private:
	/*	If you get a link error regarding a command's copy constructor, it's because it's defined privately. We force
		passing by reference for efficiency.
	*/
	Game_Init(const Game_Init&);
	Game_Init& operator=(const Game_Init&);
};

#endif
